10599
4611
Tengo un nombre de estadísticas de matriz como
manzana
X
plátano
Y
kiwi
z
Necesito poner manzana, plátano y kiwi en una matriz Fruits y X, Y y Z en una matriz llamada alfabetos.
¿Algún mecanismo simple de C # para ello, por favor? 
Utilice la sobrecarga IEnumerable  .Where que proporciona el índice.
var frutas = statsname.Where ((s, i) => i% 2 == 0) .ToArray ();
var alphabets = statsname.Where ((s, i) => i% 2! = 0) .ToArray ();
|
Robado de Cómo obtener elementos alternativos usando Enumerable en C #
var frutas = myArray.Where ((t, i) => i% 2 == 0) .ToArray ();
var alphabets = myArray.Where ((t, i) => i% 2 == 1) .ToArray ();
|
Si he entendido tu pregunta correctamente lo que quieres es muy simple:
Desea poner frutas en una variedad de frutas y lo mismo para los alfabetos y aparecen alternativamente en la matriz statsname, por lo que:
para (int i = 0, j = 0; i  lista = nueva Lista  () {"manzana", "X", "banana", "Y", "Kiwi", "z"};
var result = list.Select ((l, i) => new {l, i})
.GroupBy (p => p.i% 2)
.Seleccionar (x => x.Seleccionar (v => v.l) .ToList ())
.Listar();
Entonces tienes una lista de listas:
|
lista  frutas = nueva Lista  ();
lista  alfabeto = nueva Lista  ();
para (int i = 0; i  everyOther  (colección IEnumerable )
{
usando (var e = collection.GetEnumerator ()) {
while (e.MoveNext ()) {
rendimiento rendimiento e.Current;
e.MoveNext (); // saltar uno
}
}
}
Puede usar System.Linq.Skip para omitir el primer elemento.
cadena [] palabras = "manzana X plátano Y Kiwi z" .Split ();
var fruit = everyOther (palabras);
var alphabets = everyOther (words.Skip (1));
Solo utilícelos como una nueva colección o llame a .ToArray () o .ToList () en ellos:
foreach (cadena f en frutas)
Console.WriteLine (f);
cadena [] anArray = frutas.ToArray (); // usando System.Linq
Ahora tienes lo que necesitas.
Los iteradores son métodos que producen retorno; consulte Iteradores (Guía de programación de C #). Ésta es una característica muy importante del idioma. Usted puede:
omitir elementos
decorar elementos
cambiar el orden
concatenar secuencias (ver System.Linq.Concat)
...
|
Aquí hay un código de trabajo, con suerte, esto le será útil:
usando el sistema;
utilizando System.Collections.Generic;
usando System.IO;
utilizando System.Linq;
usando System.Text;
usando System.Threading.Tasks;
espacio de nombres ReadFile
{
programa de clase
{
static void ReadFile (string filePath, List  custumerNames, List  phoneNumbers)
{
línea de cadena = cadena.Evacío;
var fileStream = new StreamReader (filePath);
bool isPhoneNumber = true;
while ((línea = fileStream.ReadLine ())! = null)
{
if (isPhoneNumber)
{
phoneNumbers.Add (Convert.ToInt32 (línea));
isPhoneNumber = false;
}
más
{
custumerNames.Add (línea);
isPhoneNumber = true;
}
}
fileStream.Close ();
}
static void Main (cadena [] argumentos)
{
Console.WriteLine ("Comenzó a leer el archivo ...");
Lista  custumersNamesList = nueva Lista  ();
Lista  custumersPhonesNumbers = nueva Lista  ();
ReadFile ("SampleFile.txt", custumersNamesList, custumersPhonesNumbers);
// Suponiendo que ambas listas tienen la misma longitud.
para (int i = 0; i